<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">

   <title>text-spinners – tawian</title>

   <link rel="stylesheet" href="tawian-frontend.css">
   <link rel="stylesheet" href="spinners.css">
   <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cousine:400,700">

   <style>
      .example { font-size: 40px; }
   </style>
</head>

<body>

   <div class="container">

      <main class="site-main">

         <h1>text-spinners <small>Pure text, CSS only, font independent<sup id="fnref:fi"><a href="#fn:fi" class="footnote">1</a></sup>, inline loading indicators</small></h1>

         <p>
            This project tries to mimic command line spinners like those from <a href="https://github.com/sindresorhus/cli-spinners" title="cli-spinners">cli-spinners</a> (where most of them are taken from) and bring them to the web. This is part of the <a href="https://github.com/tawian/tawian-frontend" title="tawian-frontend">tawian-frontend</a> which is based on <a href="https://github.com/egoist/hack" title="hack">hack</a>. Thanks to cli-spinners and hack!
         </p>

         <h2>Usage</h2>

         <pre class="highlight"><code><span></span><span class="p">&lt;</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">href</span><span class="o">=</span><span class="s">"http://tawian.io/text-spinners/spinners.css"</span><span class="p">&gt;</span></code></pre>

         <p>or</p>

         <pre class="highlight"><span class="nt">npm</span> <span class="na">install --save</span> <span class="s">text-spinners</span></pre>

         <p>For better accessibility with screen readers add <code>aria-hidden="true"</code> or <code>role="progressbar" aria-label="Loading…"</code> to the loading element.</p>

         <h2>Types</h2>

         <div class="btn-group full-width change-font">
            <span class="btn-addon">Change Font:</span>
            <button class="btn btn-primary btn-ghost">Cousine</button>
            <button class="btn btn-primary btn-ghost">Helvetica</button>
            <button class="btn btn-primary btn-ghost">Verdana</button>
            <button class="btn btn-primary btn-ghost">monospace</button>
            <button class="btn btn-primary btn-ghost">sans-serif</button>
            <button class="btn btn-primary btn-ghost">serif</button>
         </div>

         <h3>Ellip <small>(default)</small></h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading<span class="loading" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Dots</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading dots" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading dots" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading dots"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Dots2</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading dots2" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading dots2" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading dots2"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Dots3</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading dots3" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading dots3" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading dots3"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Line</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading line" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading line" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading line"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Line2</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading line2" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading line2" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading line2"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Plus</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading plus" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading plus" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading plus"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Lifting</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading lifting" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading lifting" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading lifting"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Hamburger</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading hamburger" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading hamburger" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading hamburger"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Bar</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading bar" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading bar" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading bar"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Bar2</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading bar2" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading bar2" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading bar2"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Circle</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading circle" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading circle" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading circle"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Open-circle</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading open-circle" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading open-circle" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading open-circle"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Arrow</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading arrow" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading arrow" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading arrow"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Triangle</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading triangle" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading triangle" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading triangle"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Triangles</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading triangles" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading triangles" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading triangles"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Beam</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading beam" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading beam" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading beam"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Bullet</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading bullet" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading bullet" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading bullet"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Bullseye</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading bullseye" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading bullseye" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading bullseye"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Rhomb</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading rhomb" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading rhomb" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading rhomb"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Fish</h3>

         <div class="grid">
            <div class="cell cell-4 example">
               <span class="loading fish" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost"><span class="loading fish" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-5">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading fish"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Toggle</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading toggle" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading toggle" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading toggle"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Countdown</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading countdown" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Waiting <span class="loading countdown" aria-hidden="true"></span> seconds</button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading countdown"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Time</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading time" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading time" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading time"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Hearts</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading hearts" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading hearts" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading hearts"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Earth</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading earth" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading earth" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading earth"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Moon</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading moon" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading moon" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading moon"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Monkey</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading monkey" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading monkey" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading monkey"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Runner</h3>

         <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading runner" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading runner" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading runner"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Box Bounce</h3>

          <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading box-bounce" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading box-bounce" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading box-bounce"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Star</h3>

          <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading star" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading star" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading star"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Matrix</h3>

          <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading matrix" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading matrix" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading matrix"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Square</h3>

          <div class="grid">
            <div class="cell cell-3 example">
               <span class="loading square" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost">Loading <span class="loading square" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-6">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading square"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h3>Words</h3>

         <div class="grid">
            <div class="cell cell-4 example">
               <span class="loading words" aria-hidden="true"></span>
            </div>
            <div class="cell cell-3">
               <button class="btn btn-primary btn-ghost"><span class="loading words" aria-hidden="true"></span></button>
            </div>
            <div class="cell cell-5">
               <pre class="highlight"><code><span class="p">&lt;</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"loading words"</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></code></pre>
            </div>
         </div>

         <h2>How it works</h2>

         <div class="grid">
            <div class="cell cell-2">
               <img src="http://tawian.io/text-spinners/spinner.gif" alt="Spinner" class="full-width">
            </div>
            <div class="cell cell-10">
               <p>Every Spinner is a fixed sized element with a pseudo element whose content is set to the parts of the spinner divided by <code>\A</code> to create line breaks. Then a stepped keyframe animation shifts the pseudo element up one line-height per step.</p>
            </div>
         </div>

         <div class="footnotes dashed-top">
            <ol>
               <li id="fn:fi">
                  <p>Mostly. Sometimes not. It's complicated. <a href="#fnref:fi" class="reversefootnote">↩</a></p>
               </li>
            </ol>
         </div>

      </main>

   </div>

   <a href="https://github.com/tawian/text-spinners" aria-label="View source on Github">
      <svg width="80" height="80" viewBox="0 0 250 250" style="fill: #212121; color: #fff; position: fixed; top: 0; right: 0; border: 0;" aria-hidden="true">
         <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
         <path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;"></path>
         <path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor"></path>
      </svg>
   </a>

   <script>
      document.querySelector('.change-font').addEventListener('click', function(ev) {
         if (ev.target.nodeName === 'BUTTON') {
            document.body.style.fontFamily = ev.target.innerText;
         }
      });
   </script>

</body>

</html>
